home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PET / P-New PET 1983 / (p)l2.d64 / labygen1.02.l < prev    next >
Text File  |  2007-04-28  |  7KB  |  276 lines

  1. 0001 // FROM DENMARK - INSTRUTEK
  2. 0002 // PUTS YOU INSIDE A LABYRINTH
  3. 0003 // THIS PROGRAM GENERATES THE DATA FILE USED BY LABYRINT
  4. 0004 MAX:=0
  5. 0005 PRINT CHR$(142)
  6. 0010 DIM T$ OF 1000
  7. 0012 DIM XL(0:4), N2(0:4), YL(0:4), XR(0:4)
  8. 0013 FOR I:=0 TO 4 DO READ XL(I),N2(I),YL(I),XR(I)
  9. 0015 DATA 8,20,-4,31,8,12,1,27,12,6,5,24,15,2,8,22,17,0,10,21
  10. 0020 OPEN FILE 2,"@0:LABYDATA",WRITE
  11. 0030 // H\JRE UDEN HUL
  12. 0040 FOR S:=0 TO 4 DO
  13. 0042   T$:=""
  14. 0050   // UDEN ENDE
  15. 0060   DN(YL(S))
  16. 0070   IF S=0 THEN
  17. 0080     TAP(XR(S))
  18. 0090     T$:+"╬"
  19. 0100     DN(N2(S)+2)
  20. 0110     T$:+"¥═"
  21. 0120   ELSE 
  22. 0130     TAP(XR(S)+4-S)
  23. 0140     FOR I:=1 TO 5-S DO T$:+"╬¥¥"
  24. 0150     DN(N2(S)+2)
  25. 0152     T$:+""
  26. 0160     FOR I:=1 TO 5-S DO T$:+"═"
  27. 0170   ENDIF 
  28. 0180   WRITE FILE 2: T$
  29. 0182   UD(T$)
  30. 0190   // MED ENDE
  31. 0200   T$:+""
  32. 0210   DN(YL(S)+5-S)
  33. 0220   TAP(20)
  34. 0230   IF S<4 THEN
  35. 0240     FOR I:=1 TO XR(S)-21 DO T$:+CHR$(163)
  36. 0250   ENDIF 
  37. 0260   T$:+"╨¥"
  38. 0270   IF S<4 THEN
  39. 0280     FOR I:=1 TO N2(S) DO T$:+CHR$(167)+"¥"
  40. 0290   ENDIF 
  41. 0300   T$:+CHR$(186)+"¥¥"
  42. 0310   IF S<4 THEN
  43. 0320     FOR I:=1 TO XR(S)-21 DO T$:+CHR$(164)+"¥¥"
  44. 0322   ENDIF 
  45. 0330   WRITE FILE 2: T$
  46. 0332   UD(T$)
  47. 0340 ENDFOR S
  48. 0350 FOR S:=0 TO 4 DO
  49. 0360   // VENSTRE V[G UDEN ENDE
  50. 0370   T$:=""
  51. 0380   DN(YL(S))
  52. 0390   IF S=0 THEN
  53. 0400     TAP(XL(S))
  54. 0410     T$:+"═"
  55. 0420   ELSE 
  56. 0430     TAP(XL(S)+1)
  57. 0440     FOR I:=1 TO 5-S DO T$:+"═"
  58. 0450   ENDIF 
  59. 0460   DN(N2(S)+1)
  60. 0470   T$:+CHR$(13)
  61. 0480   IF S=0 THEN
  62. 0490     TAP(XL(S))
  63. 0500     T$:+"╬"
  64. 0510   ELSE 
  65. 0520     TAP(XL(S)+5-S)
  66. 0530     FOR I:=0 TO 4-S DO T$:+"╬¥¥"
  67. 0532   ENDIF 
  68. 0540   WRITE FILE 2: T$
  69. 0542   UD(T$)
  70. 0550   // VENSTRE V[G MED ENDE
  71. 0560   J:=0
  72. 0570   IF S=0 THEN J:=5
  73. 0580   T$:+""
  74. 0590   DN(YL(S)+5-S)
  75. 0600   TAP(19)
  76. 0610   IF S<4 THEN
  77. 0620     FOR I:=1 TO 18-XL(S)-5+S+J DO T$:+CHR$(163)+"¥¥"
  78. 0630   ENDIF 
  79. 0640   T$:+"╧¥"
  80. 0650   IF S<4 THEN
  81. 0660     FOR I:=1 TO N2(S) DO T$:+CHR$(165)+"¥"
  82. 0670   ENDIF 
  83. 0680   T$:+"╠"
  84. 0690   IF S<4 THEN
  85. 0700     FOR I:=1 TO 18-XL(S)-5+S+J DO T$:+CHR$(164)
  86. 0703   ENDIF 
  87. 0710   WRITE FILE 2: T$
  88. 0712   UD(T$)
  89. 0720 ENDFOR S
  90. 0730 FOR S:=0 TO 4 DO
  91. 0740   //H\JRE HUL UDEN ENDE
  92. 0750   T$:=""
  93. 0760   DN(YL(S))
  94. 0770   IF S=0 THEN
  95. 0780     TAP(XR(S))
  96. 0790     T$:+CHR$(164)+CHR$(13)
  97. 0800   ENDIF 
  98. 0810   IF S>0 AND S<4 THEN
  99. 0820     TAP(XR(S)+5-S)
  100. 0830     FOR I:=1 TO 4-S DO T$:+CHR$(165)+"¥"
  101. 0840     T$:+CHR$(13)+"æ"
  102. 0850   ENDIF 
  103. 0860   IF S>0 THEN
  104. 0870     TAP(XR(S))
  105. 0880     FOR I:=S TO 4 DO T$:+CHR$(164)
  106. 0890     T$:+CHR$(165)+CHR$(13)
  107. 0900   ENDIF 
  108. 0910   IF S=4 THEN
  109. 0920     TAP(XR(S))
  110. 0930     T$:+CHR$(165)+CHR$(165)+"¥¥"+CHR$(165)+CHR$(165)+CHR$(13)
  111. 0940   ENDIF 
  112. 0950   IF S<4 THEN
  113. 0952     TAP(XR(S))
  114. 0960     FOR I:=0 TO N2(S)+1 DO
  115. 0970       K:=1
  116. 0980       T$:+CHR$(165)
  117. 0990       IF S>0 THEN
  118. 1000         FOR J:=S TO 3 DO T$:+""
  119. 1010         T$:+CHR$(165)
  120. 1012         K:+1+4-S
  121. 1020       ENDIF 
  122. 1022       FOR J:=1 TO K DO T$:+"¥"
  123. 1024       T$:+""
  124. 1032     ENDFOR I
  125. 1033     T$:+CHR$(13)+"æ"
  126. 1034   ENDIF 
  127. 1040   IF S>0 THEN
  128. 1050     TAP(XR(S))
  129. 1060     FOR J:=S TO 4 DO T$:+CHR$(163)
  130. 1070     T$:+CHR$(165)+CHR$(13)
  131. 1072   ENDIF 
  132. 1090   IF S>0 AND S<4 THEN
  133. 1100     FOR I:=1 TO 4-S DO
  134. 1110       TAP(XR(S)+5-S)
  135. 1120       T$:+CHR$(165)+CHR$(13)
  136. 1130     ENDFOR I
  137. 1140   ENDIF 
  138. 1150   IF S=0 THEN
  139. 1160     TAP(XR(S))
  140. 1170     T$:+CHR$(163)
  141. 1172   ENDIF 
  142. 1180   WRITE FILE 2: T$
  143. 1182   UD(T$)
  144. 1190   //H\JRE HUL MED ENDE
  145. 1200   J:=3-S
  146. 1210   IF S=0 THEN J:=0
  147. 1220   T$:=""
  148. 1230   IF S=0 THEN
  149. 1240     TAP(20)
  150. 1250     T$:+""
  151. 1260     FOR I:=1 TO 19 DO T$:+CHR$(163)
  152. 1270     T$:+CHR$(13)
  153. 1280     DN(N2(0))
  154. 1290     TAP(20)
  155. 1300     FOR I:=1 TO 19 DO T$:+CHR$(164)
  156. 1310   ELSE 
  157. 1320     DN(YL(S))
  158. 1330     TAP(J+XR(S)+2)
  159. 1340     FOR I:=1 TO 5-S DO T$:+CHR$(165)+"¥"
  160. 1350     T$:+CHR$(13)+"æ"
  161. 1360     TAP(20)
  162. 1370     FOR I:=19 TO J+XR(S) DO T$:+CHR$(163)
  163. 1380     T$:+CHR$(165)+CHR$(13)
  164. 1390     IF S<4 THEN
  165. 1400       TAP(J+XR(S)+2)
  166. 1410       FOR I:=1 TO N2(S) DO T$:+CHR$(165)+"¥"
  167. 1420       T$:+CHR$(13)+"æ"
  168. 1422     ENDIF 
  169. 1430     TAP(20)
  170. 1440     FOR I:=19 TO J+XR(S) DO T$:+CHR$(164)
  171. 1450     T$:+CHR$(165)+CHR$(13)
  172. 1460     TAP(J+XR(S)+2)
  173. 1470     FOR I:=1 TO 5-S DO T$:+CHR$(165)+"¥"
  174. 1472   ENDIF 
  175. 1480   WRITE FILE 2: T$
  176. 1482   UD(T$)
  177. 1500 ENDFOR S
  178. 1502 SKIP:
  179. 1510 FOR S:=0 TO 4 DO
  180. 1520   //VENSTRE HUL UDEN ENDE
  181. 1530   T$:=""
  182. 1540   DN(YL(S))
  183. 1550   IF S=0 THEN
  184. 1560     TAP(XL(S))
  185. 1570     T$:+CHR$(164)+CHR$(13)
  186. 1580   ENDIF 
  187. 1590   IF S>0 AND S<4 THEN
  188. 1600     TAP(XL(S))
  189. 1620     FOR I:=1 TO 4-S DO T$:+CHR$(167)+"¥"
  190. 1630     T$:+CHR$(13)+"æ"
  191. 1640   ENDIF 
  192. 1642   IF S>0 THEN
  193. 1644     TAP(XL(S))
  194. 1646     T$:+CHR$(167)
  195. 1648     FOR I:=2 TO 6-S DO T$:+CHR$(164)
  196. 1650     T$:+CHR$(13)
  197. 1652   ENDIF 
  198. 1654   IF S=4 THEN
  199. 1660     TAP(XL(S))
  200. 1670     T$:+CHR$(167)+CHR$(167)+"¥¥"+CHR$(167)+CHR$(167)+CHR$(13)
  201. 1680   ENDIF 
  202. 1690   IF S<4 THEN
  203. 1700     FOR I:=0 TO N2(S)+1 DO
  204. 1710       TAP(XL(S))
  205. 1720       T$:+CHR$(167)
  206. 1730       IF S>0 THEN
  207. 1740         FOR J:=S TO 3 DO T$:+""
  208. 1750         T$:+CHR$(167)
  209. 1760       ENDIF 
  210. 1762       T$:+CHR$(13)
  211. 1770     ENDFOR I
  212. 1780   ENDIF 
  213. 1790   IF S>0 THEN
  214. 1800     TAP(XL(S))
  215. 1810     T$:+CHR$(167)
  216. 1820     FOR I:=2 TO 6-S DO T$:+CHR$(163)
  217. 1830     T$:+CHR$(13)
  218. 1840   ENDIF 
  219. 1850   IF S>0 AND S<4 THEN
  220. 1860     TAP(XL(S))
  221. 1870     FOR I:=1 TO 4-S DO T$:+CHR$(167)+"¥"
  222. 1880     T$:+CHR$(13)+"æ"
  223. 1890   ENDIF 
  224. 1900   IF S=0 THEN
  225. 1910     TAP(XL(S))
  226. 1920     T$:+CHR$(163)+CHR$(13)
  227. 1922   ENDIF 
  228. 1930   WRITE FILE 2: T$
  229. 1932   UD(T$)
  230. 1940   //VENSTRE HUL MED ENDE
  231. 1950   T$:=""
  232. 1960   IF S=0 THEN
  233. 1970     T$:+""
  234. 1980     FOR I:=1 TO 12+XL(0) DO T$:+CHR$(163)
  235. 1990     T$:+CHR$(13)
  236. 2000     DN(N2(0))
  237. 2010     FOR I:=1 TO 12+XL(0) DO T$:+CHR$(164)
  238. 2020   ELSE 
  239. 2030     DN(YL(S))
  240. 2040     TAP(XL(S))
  241. 2050     FOR I:=1 TO 5-S DO T$:+CHR$(167)+"¥"
  242. 2060     T$:+CHR$(167)
  243. 2070     FOR I:=XL(S) TO 18 DO T$:+CHR$(163)
  244. 2080     T$:+CHR$(13)
  245. 2090     TAP(XL(S))
  246. 2100     IF S<4 THEN
  247. 2110       FOR I:=1 TO N2(S) DO T$:+CHR$(167)+"¥"
  248. 2120     ENDIF 
  249. 2130     T$:+CHR$(167)
  250. 2140     FOR I:=XL(S) TO 18 DO T$:+CHR$(164)
  251. 2150     T$:+CHR$(13)
  252. 2160     TAP(XL(S))
  253. 2170     FOR I:=1 TO 5-S DO T$:+CHR$(167)+"¥"
  254. 2172   ENDIF 
  255. 2180   WRITE FILE 2: T$
  256. 2181   UD(T$)
  257. 2190 ENDFOR S
  258. 3000 PROC DN(X) 
  259. 3010   FOR Y:=1 TO X DO T$:+""
  260. 3012   IF LEN(T$)>1000 THEN STOP 
  261. 3020 ENDPROC DN
  262. 3030 PROC TAP(X) 
  263. 3040   FOR Y:=1 TO X DO T$:+""
  264. 3042   IF LEN(T$)>1000 THEN STOP 
  265. 3050 ENDPROC TAP
  266. 3100 PROC UD(T$) 
  267. 3110   PRINT "ô",LEN(T$),"",T$,""
  268. 3120   IF LEN(T$)>MAX THEN MAX:=LEN(T$)
  269. 3140 ENDPROC UD
  270. 4000 CLOSE
  271. 4010 PRINT "MAX: ",MAX
  272. 9000 //
  273. 9010 // AVAILABLE FROM COMAL USER GROUP
  274. 9020 //                5501 GROVELAND TER
  275. 9030 //                MADISON WI 53716
  276.